home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 41
/
Aminet 41 (2001)(Schatztruhe)[!][Feb 2001].iso
/
Aminet
/
misc
/
sci
/
Denise4_2.lha
/
Denise4_2
/
data
/
eliza.txt
< prev
next >
Wrap
Text File
|
1980-01-06
|
9KB
|
204 lines
Eliza - zasady tworzenia bazy.
* * *
UWAGA!
JEÔLI PRZY TWORZENIU BAZY NIE BËDZIEMY TRZYMAÊ SIË PODANYCH TUTAJ ZASAD,
TO EFEKT KOÏCOWY BËDZIE DALEKI OD ZAMIERZONEGO.
(jeôli coô wymaga dokîadniejszego opisu, proszë o informacje)
* * *
* * * Funkcja kontroli bazy.
- Zawsze po modyfykacjach w bazie i uruchomieniu programu, naleûy sprawdziê
poprawnoôê zapisu wywoîujâc komendë: "check eliza". Rozkaz wywoîuje funkcjë,
która sprawdza skîadnië bazy i w razie bîëdów zwraca odpowiedni komentarz i
okreôla bîëdne miejsce w bazie. Funkcja nie sprawdza zmiennych wewnëtrznych
(oznaczanych jako $NAZWA_ZMIENNEJ).
* * * Czîony KONIECZNE i ZABRONIONE, SÎABE i MOCNE.
- Czîony SÎABE i MOCNE okreôlajâ sposób kontroli czîonów w zdaniu.
Jeôli czîon jest SÎABY (oznaczny bez znaku '!'), to jego istnienie, lub nie
istnienie w zdaniu rozmówcy jest punktowane i liczy sië tylko ostateczna ocena.
Jeôli czîon jest MOCNY (ma dodatkowo znak '!'), to jeôli nie jest ZGODNY, to
automatycznie porównywane listy otrzymujâ jakoôê korelacji == 0, czyli nie
sâ zgodne. Jeôli czîon MOCNY jest ZGODNY, to jest punktowany tak jak SÎABY.
- W celu zwiëkszenia szybkoôci dziaîania, czîony MOCNE naleûy umieszczaê na
poczâtku listy.
- Kaûde wystâpienie sîabego czîonu koniecznego w zdaniu i na liôcie
zwiëksza prawdopodobieïstwo wybrania listy. Wystâpienie czîonu koniecznego
tylko w zdaniu lub tylko na liôcie, zmniejsza prawdopodobieïstwo wybrania
listy.
- Program gwarantuje, ûe: dla zdania twierdzâcego nigdy nie zostanie wybrana
lista z przeczeniem (nie).
* * * Oznaczanie TWIERDZEÏ.
- Jeôli tworzona lista ma byê twierdzâca, to naleûy na jej poczâtku ZAWSZE
dodawaê czîon zabroniony (nie). Np.:
!-(nie)+...dalszy ciâg listy twierdzâcej...
- Gwarantuje to, ûe lista ta nigdy nie zostanie wybrana dla zdania przeczâcego,
nawet jeôli to zdanie zawieraîoby wszystkie elementy konieczne z listy.
* * * Biegunowoôê.
- Jeôli tworzymy listë pozytywów, to naleûy teû stworzyê listë negatywów.
!-(nie)+(jesteô)+<inteligentny>/<mâdry>/<zdolna>
!-(nie)+(jesteô)+<gîupi>/<tëpy>/<idiota>
- Gwarantuje to, ûe kiedy wpiszemy: "jesteô gîupia" - to zostanie wywoîanalista
druga, a nie pierwsza, która jest w duûym stopniu zgodna ze zdaniem.
- Jeôli tworzymy listë zaprzeczeï pozytywów, to naleûy teû stworzyê listë
zaprzeczeï negatywów, np.:
!+(nie)+(jesteô)+<inteligentny>/<mâdry>/<zdolna>
!+(nie)+(jesteô)+<gîupi>/<tëpy>/<idiota>
- Gwarantuje to, ûe jeôli wpiszemy: "nie jesteô gîupia" - to zostanie wywoîana
lista druga, a nie pierwsza, która zawiera 2/3 wyrazów i moûe byê zaakceptowana.
* * * Zdania pytajâce.
- Jeôli tworzymy listë, to zastanówmy sië, czy ma ona dotyczyê zdania
twierdzâcego, czy pytajâcego, czy moûe nadaje sië do obu typów. Zwiëksza to
zakres pracy programu.
* * * Uogólnianie.
- Przy tworzeniu list naleûy pamiëtaê, aby byîy ogólne i pasowaîy do
kaûdej sytuacji, w której moûe paôê zdanie, któremu odpowiadajâ.
* * * Listy do uûytku wewnëtrznego.
- Listy identyfikacyjne, zaczynajâce sië znakiem $ (dolar) sâ WYÎÂCZNIE do
uûytku wewnëtrznego i NIE MOÛNA tworzyê list publicznych z takim znakiem na
poczâtku.
* * * Opis formalny.
Eliza jest wywoîywana w przypadkach:
- jeôli Denise-MYTH jest wyîâczona, to zawsze wywoîywana jest Eliza
- w analizie logicznej zdania:
- jeôli nie moûna zdania rozîoûyê logicznie (brak wyrazów w bazie, zîa
skîadnia, lub inny problem w logicznym rozumieniu zdania) to Eliza
- w przypadku komunikatów wewnëtrznych:
- jeôli tylko wystëpujâ ich tîumaczenia w bazie Elizy, to one zostanâ
wypisane, w przeciwnym razie pozostaje forma tradycyjna,
- bez wzglëdu na istnienie tîumaczeï losowo moûe byê ZAMIAST nich wybrana
Eliza w odpowiedzi na twierdzenie, pytanie, (jeôli nie powiedzie sië, to
wypisywany jest komunikat jak miaîo byê wstëpnie)
- przy tworzeniu pytania:
- jeôli nie moûna znaleúê faktu about_fakt, to losowo moûna wybraê Elizë,
- jeôli nie moûna utworzyê go w normalny sposób, to wybieramy Elizë,
- jeôli moûna je uîoûyê, to losowo moûe zostaê wybrana czasem Eliza,
UWAGA! jest zabezpieczenie, aby nie odpowiadaê 2x na to samo zdanie,
dlatego eliza_memory.saved==KOD_TRUE oznacza, ûe juû odpowiedziano
format bazy danych:
* (E_POZYCJA_START)
LISTA IDENTYFIKACYJNA NR 1
LISTA IDENTYFIKACYJNA NR 2
LISTA IDENTYFIKACYJNA NR N
· (E_CIAG_LIST_START)
LISTA FUNKCYJNA NR 1
LISTA FUNKCYJNA NR 2
LISTA FUNKCYJNA NR N
* (E_POZYCJA_START) lub ~ (DATA_END)
gdzie:
LISTA IDENTYFIKACYJNA - oczekiwany ciâg wejôciowy dla danej pozycji
LISTA FUNKCYJNA - ciâg wyjôciowy dla danej pozycji
format zapisu:
- pierwszy znak: (moûliwa operacja OR: !/?)
! - twierdzenie (E_TWIERDZENIE)
? - pytanie (E_PYTANIE)
- wyrazy odmienione: (wyraz_odmieniony) (E_ODMIENIONY_START E_ODMIENIONY_END)
- wyrazy podstawowe: <wyraz_podstawowy> (E_PODSTAWOWY_START E_PODSTAWOWY_END)
- wyrazy odmienione i podstawowe:
(wyraz_odmieniony)<wyraz_podstawowy>
<wyraz_podstawowy>(wyraz_odmieniony)
- czîony sîabe: +czîon, -czîon
- czîony mocne: +!czîon,-!czîon
- czîon mocny: znak specjalny: ! (E_HARD)
- operacja AND:
- znak specjalny: + (E_AND)
- skîadnia: +WYRAZ lub +LISTA_WYRAZOW
- operacja OR:
- znak specjalny: / (E_OR)
- skîadnia: WYRAZ1/WYRAZ2.../WYRAZN
- operacja NOT:
- znak specjalny: - (E_NOT)
- skîadnia: -WYRAZ
Przeformatowanie list zawierajâcych zmienne charakterystyczne na listy
peîne, z elementami zastëpczymi dla zmiennych charakterystycznych.
- zmienne charakterystyczne: $NAZWA_ZMIENNEJ{PARAMETRY}
- opis:
- $ - E_VARIABLE
- { - E_PARAM_START
- } - E_PARAM_END
- {} - pusta lista, oznacza brak parametrów
- dostëpne zmienne charakterystyczne z parametrami:
- ODMIANA{wyraz_podstawowy,parametr1,parametr2...} - wstawia
wyraz_podstawowy w okreôlonej parametrami odmianie (parametry sâ
opisane pod hasîem ODMIANA)
- ROZMOWCA{ODMIANA} - nazwa (imie) uûytkownika (E_ROZMOWCA)
- TEMAT{ODMIANA} - aktualny temat (E_TEMAT)
- OST_ZDANIE{FORMAT_ZDANIA} - peîne ostatnie zdanie, które wpisaî uûytkownik, w
formacie listy, lub dosîownie, (E_OST_ZDANIE)
- PRZED_OST_ZDANIE{FORMAT_ZDANIA} - jak wyûej, z tym, ûe dotyczy
przed ostatniego zdania wpisanego przez uûytkownika
- RESZTA_ZDANIA{WYRAZ_POCZATKOWY} - zwraca pozostaîâ czëôê zdania
rozmówcy, rozpoczynajâc od podanego WYRAZ_POCZATKOWY (bez niego)
- zmienne wywoîywane wewnëtrznie przez Denise, bez parametrów: $NAZWA_ZMIENNEJ{}
- DENISE_TWIERDZENIE_SPRZECZNE{} - wywoîywane przy wykryciu sprzecznoôci w twierdzeniu
- DENISE_TWIERDZENIE_ZGODNE{} - przy zgodnoôci twierdzenia rozmówcy z danymi w bazie
- DENISE_PYTANIE_SPRZECZNE{} - przy pytaniu sprzecznym
- DENISE_PYTANIE_CHYBA_SPRZECZNE{} - przy pytaniu sprzecznym ale nie na 100%
- DENISE_PYTANIE_ZGODNE{} - przy pytaniu zgodnym z danymi
- DENISE_PYTANIE_CHYBA_ZGODNE{} - przy pytaniu zgodnym z danymi, ale nie na 100%
- DENISE_PYTANIE_BRAK_DANYCH{} - przy braku danych na stawiane pytanie
- DENISE_ZAPAMIETUJE_INFORMACJE{} - przy zapamiëtywaniu nowych informacji
- DENISE_WERYFIKUJE_SPRZECZNOSC{} - przy weryfikacji danych o maîym
prawdopodobieïstwie i zmianie informacji na przeciwnâ
- DENISE_ZWIEKSZAM_PEWNOSC{} - przy zwiëkszaniu informacji o maîej
pewnoôci do 100%
- DENISE_NOWY_ROZMOWCA{} - wywoîywane, kiedy ZMIENIONY zostaî rozmówca,
jak równieû przy pierwszym przedstawieniu sië,
- DENISE_ROZMOWCA_POWTORZYL_ZDANIE{} - wywoîywane, kiedy rozmówca powtórzyî to
samo zdanie
- DENISE_ROZMOWCA_SIE_NIE_PRZEDSTAWIL{} - kiedy rozmówca sië jeszcze nie
przedstawiî pomimo wpisania jakichô zdaï
- DENISE_ROZMOWCA_MILCZY{} - kiedy rozmówca nic nie wpisuje, ale wciska enter
- DENISE_ELIZA_NIE_ZNALAZLA_ODPOWIEDZI{} - kiedy nie odnaleziono
odpowiedzi Elizy w bazie
- opis parametrów:
- ODMIANA:
- UWAGA! jeôli sië definiuje parametry odmiany, to trzeba
definiowaê ich wystarczajâco duûo, w przeciwnym przypadku pozostaîe
parametry sâ dobierane na drodze losowej!
- format: PARAMETR,PARAMETR,PARAMETR...
- parametry: (w definicji opisane jako E_nazwa_parametru)
przypadki: MIANOWNIK, BIERNIK, CELOWNIK, DOPELNIACZ, NARZEDNIK, MIEJSCOWNIK, WOLACZ
liczby: LICZBA_POJEDYNCZA,LICZBA_MNOGA
rodzaje: RODZAJ_MESKI,RODZAJ_ZENSKI,RODZAJ_NIJAKI,RODZAJ_MESKOOSOBOWY,RODZAJ_NIEMESKOOSOBOWY
osoby: OSOBA_JA,OSOBA_TY,OSOBA_ON,OSOBA_MY,OSOBA_WY,OSOBA_ONI
czasy: CZAS_PRZESZLY,CZAS_TERAZNIEJSZY,CZAS_PRZYSZLY
stopnie: STOPIEN_ROWNY,STOPIEN_WYZSZY,STOPIEN_NAJWYZSZY
specjalne: RODZAJ_ROZMOWCY,RODZAJ_TEMATU
- FORMAT_ZDANIA:
- LISTA - w formacie listy
- ORYGINAL - oryginalny wpis
- WYRAZ_POCZATKOWY:
- wyraz_odmieniony - wyraz, od którego zostanie powtórzone zdanie,